package ua.diploma.core;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import static ua.diploma.core.Constants.ERROR_VIEW;
import static ua.diploma.core.Constants.ERROR_MESSAGE_ATTRIBUTE;

/**
 * Контроллер получает управления в случае возникновения ошибки при обработке
 * запроса от клиента
 * 
 * @author netstalk3r
 */
@WebServlet(name = "error", urlPatterns = { "/private/error" })
public class ErrorController extends HttpServlet {

	private static final long serialVersionUID = 1L;

	/**
	 * логгер
	 */
	private static final Logger log = Logger.getLogger(ErrorController.class);

	/**
	 * Контруктор по умолчанию
	 */
	public ErrorController() {
		super();
	}

	/**
	 * перенаправление на страницу ошибок
	 */
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		log.info("Error Controller работает");
		log.info("Error: " + request.getAttribute(ERROR_MESSAGE_ATTRIBUTE));
		request.getRequestDispatcher(ERROR_VIEW).forward(request, response);
	}
}
